//package com.lx.idea.common.util;
//
//import org.apache.commons.net.ftp.FTPClient;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.*;
//import java.math.BigDecimal;
//import java.math.RoundingMode;
//
//public class FtpUtil {
//
//    private static Logger logger = LoggerFactory.getLogger(FtpUtil.class);
//
//    public static boolean downloadFile(FTPClient ftpClient, String srcFileName, OutputStream outputStream) throws IOException {
//            logger.info("开始下载： {}" + srcFileName);
//        long start = System.currentTimeMillis();
//        ftpClient.retrieveFile(srcFileName, outputStream);
//            logger.info("下载成功: {}", srcFileName);
//        long size = ((FileOutputStream) outputStream).getChannel().size();
//        logger.info("文件大小: {}", new BigDecimal(size).divide(new BigDecimal(1024) .multiply(new BigDecimal(1024)),1, RoundingMode.HALF_UP));
//        System.out.println("下载耗时 耗时-> " + (System.currentTimeMillis() - start));
//        return true;
//    }
//
//    /**
//     * 上传文件
//     *
//     * @param inputStream 待上传文件的输入流
//     * @param originName  文件保存时的名字
//     * @param ftpClient
//     */
//    public static boolean uploadFile(InputStream inputStream, String originName, FTPClient ftpClient) {
//        System.out.println(originName);
//        if (ftpClient == null) {
//            logger.info("FTP连接失败");
//            return false;
//        }
//        try {
////            保存文件
//            boolean isSuccess = ftpClient.storeFile(originName, inputStream);
//            if (!isSuccess) {
//                logger.error("{}---》上传失败！", originName);
//                ftpClient.logout();
//                return false;
//            } else {
//                logger.info("{}---》上传成功！", originName);
//                ftpClient.logout();
//                return true;
//            }
//        } catch (IOException e) {
//            logger.error("{}---》上传失败！", e.getMessage());
//            return false;
//        } finally {
//            if (ftpClient.isConnected()) {
//                try {
//                    ftpClient.disconnect();
//                } catch (IOException e) {
//                    logger.error("断开连接失败===>{}", e.getMessage());
//                }
//            }
//        }
//    }
//
//    /*
//     针对处理大文件上传
//     */
//    public static boolean uploadLargeFile(InputStream inputStream, String originName, FTPClient ftpClient) {
//        System.out.println(originName);
//        if (ftpClient == null) {
//            logger.info("FTP连接失败");
//            return false;
//        }
//        try {
////            保存文件
//            OutputStream out = ftpClient.storeFileStream(originName);
//            byte[] byteArray = new byte[1024*1024*8];//8M
//            int read = 0;
//            long start = System.currentTimeMillis();
//            while ((read = inputStream.read(byteArray)) != -1) {
//                out.write(byteArray, 0, read);
//            }
//            out.flush();
//            out.close();
//            System.out.println(System.currentTimeMillis()-start+"ms");
//            logger.info("{}---》上传成功！", originName);
//            ftpClient.logout();
//            return true;
//        } catch (IOException e) {
//            logger.error("{}---》上传失败！", e.getMessage());
//            return false;
//        } finally {
//            if (ftpClient.isConnected()) {
//                try {
//                    ftpClient.disconnect();
//                } catch (IOException e) {
//                    logger.error("断开连接失败===>{}", e.getMessage());
//                }
//            }
//        }
//    }
//
//    /**
//     * 删除文件
//     *
//     * @param ftpClient
//     * @return
//     * @throws IOException
//     */
//    public static boolean deleteFile(FTPClient ftpClient,String fileName) {
//        boolean flag = true;
//        try {
//            boolean isSuccess = ftpClient.deleteFile(fileName);
//            if (!isSuccess) {
//                logger.error("{}---》删除失败！", fileName);
//                flag = false;
//            } else {
//                logger.info("{}---》删除成功！", fileName);
//            }
//        } catch (IOException e) {
//            flag = false;
//            logger.error("{}===>删除失败===>",fileName,e.getMessage());
//        } finally {
//            if (ftpClient.isConnected()) {
//                try {
//                    ftpClient.disconnect();
//                } catch (IOException e) {
//                    logger.error("断开连接失败===>{}", e.getMessage());
//                }
//            }
//        }
//
//        return flag;
//    }
//
//    /**
//     * 处理文件名绝对路径
//     *
//     * @param filePath
//     * @param fileName
//     * @return P:/temp/1.txt 或者 p:/temp/x
//     */
//    public static String pasreFilePath(String filePath, String fileName) {
//        StringBuffer sb = new StringBuffer();
//        if (filePath.endsWith("/") || filePath.endsWith("\\")) {
//            sb.append(filePath).append(fileName);
//        } else {
//            sb.append(filePath.replaceAll("\\\\", "/")).append("/").append(fileName);
//        }
//        return sb.toString();
//    }
//
//}